/*
 * 描述： 金額
 * 修改人： Weng.weng
 * 修改时间： 2021年8月23日
 * 项目： repayment-allocation-demo
 */
package com.tuozixuan.allocation.amount;

import java.math.BigDecimal;

import com.tuozixuan.allocation.constant.AmountType;

/**
 * 金額<br>
 * 
 * @author Weng.weng
 * @version [版本号, 2021年8月23日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public abstract class Amount {

	/** 應還金額 */
	private BigDecimal total;
	
	/** 實還金額 */
	private BigDecimal actual;
	
	/** 豁免金額（不支持豁免為0即可） */
	private BigDecimal exempt;

	/** 剩餘金額 */
	private BigDecimal remain;

	public abstract AmountType getType();

	public BigDecimal getTotal() {
		return total;
	}

	public void setTotal(BigDecimal total) {
		this.total = total;
	}

	public BigDecimal getActual() {
		return actual;
	}

	public void setActual(BigDecimal actual) {
		this.actual = actual;
	}
	
	public BigDecimal getExempt() {
		return exempt;
	}

	public void setExempt(BigDecimal exempt) {
		this.exempt = exempt;
	}
	
	public BigDecimal getRemain() {
		return remain;
	}

	public void setRemain(BigDecimal remain) {
		this.remain = remain;
	}

	@Override
	public String toString() {
		return "Amount [type=" + getType() + ", total=" + total + ", actual=" + actual + ", exempt=" + exempt + ", remain=" + remain
				+ "]";
	}
}
